The use of network computing and storage has proliferated in recent years. The resources for network computing and storage are often provided by computing resource providers who leverage large-scale networks of computers, servers and storage drives to enable customers to host and execute a variety of applications and web services. The customers, who traditionally used on-site servers and storage equipment to meet their computing demands often forego on-site hosting and storage and turn to using the resources of the computing resource providers. The usage of network computing allows the customers to efficiently and adaptively satisfy their computing needs. Without investing in computing infrastructure, the customers may add computing and storage resources from a large pool provided by a computing resource provider. Further, when their demand for computing resources decreases, the computing resources may be reallocated for other uses.
To ensure efficient utilization of network computing resources it is often challenging to manage the allocation of computing resources and ensure that customer applications requiring computing resources can timely receive the computing resources. Further, it is often challenging to enforce efficiency mechanisms such that under-utilized resources may be reallocated for alternative use.